package com.codegen.enums;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import lombok.ToString;

/**
 * 一些默认字段
 *
 * @author king
 */
@Getter
@ToString
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
public enum DefaultField {
    /**
     * 主键
     */
    ID("id", "主键", FieldType.INT.name(), 11),

    /**
     * 创建者
     */
    CREATE_BY("create_by", "创建者", FieldType.VARCHAR.name(), 11),

    /**
     * 创建时间
     */
    CREATE_TIME("create_time", "创建时间", FieldType.DATETIME.name(), 0),

    /**
     * 更新者
     */
    UPDATE_BY("update_by", "更新者", FieldType.VARCHAR.name(), 11),

    /**
     * 更新时间
     */
    UPDATE_TIME("update_time", "更新时间", FieldType.DATETIME.name(), 0),

    /**
     * 备注信息
     */
    REMARKS("remarks", "备注信息", FieldType.VARCHAR.name(), 256),

    /**
     * 逻辑删除标识
     */
    DEL_FLAG("del_flag", "逻辑删除标识", FieldType.TINYINT.name(), 2),

    /**
     * 父级编号
     */
    PARENT_ID("parent_id", "父级编号", FieldType.INT.name(), 20),

    /**
     * 所有父级编号,用逗号分隔
     */
    PARENT_IDS("parent_ids", "所有父级编号,用逗号分隔", FieldType.VARCHAR.name(), 20),

    /**
     * 名称
     */
    NAME("name", "名称", FieldType.VARCHAR.name(), 30),

    /**
     * 排序
     */
    SORT_NO("sort_no", "排序", FieldType.INT.name(), 11);

    private DefaultField(String name, String desc, String type, int length) {
        this.name = name;
        this.desc = desc;
        this.type = type;
        this.length = length;
    }

    /**
     * 字段名
     */
    private String name;
    /**
     * 字段描述
     */
    private String desc;
    /**
     * 字段类型
     */
    private String type;

    /**
     * 字段长度
     */
    private int length;


}
